//
// author Selphy
//


// バージョン
#pragma version(1)

// パッケージ
#pragma rs java_package_name(jp.kiroru_inc.rs_hello_world)

#include "rs_graphics.rsh"

// Step-3で作成した構造体
typedef struct RS_Text {
    rs_allocation text;
    float red;
    float green;
    float blue;
} RS_Text_t;
RS_Text_t *gTexts;

// Step-3では下の行を構造体として扱うのでコメントアウト
//rs_allocation gText;
rs_font gFont;
float2 gTouch;

/* ------------------------------------------- */
/* タッチイベントから座標を受け取ります。              */
/* ------------------------------------------- */
void setTouchPosition(float2 pos) {
    gTouch = pos;
}

/* ------------------------------------------- */
/* メインループ */
/* ------------------------------------------- */
int32_t root() {
    rsgClearColor(1.0f, 1.0f, 1.0f, 1.0f);
    
    int32_t left = 0;
    int32_t right = 0;
    int32_t top = 0;
    int32_t bottom = 0;
    
    int32_t size = rsAllocationGetDimX(rsGetAllocation(gTexts));
    for (int32_t i=0; i<size; i++) {
        rsgFontColor(gTexts[i].red, gTexts[i].green, gTexts[i].blue, 1.0f);
        rsgBindFont(gFont);
        rsgMeasureText(gTexts[i].text, &left, &right, &top, &bottom);
        
        // 5 * i で文字列の表示位置を少しだけずらしています。
        int32_t x = gTouch.x - (right - left) * 0.5f + 5 * i;
        int32_t y = gTouch.y - (bottom - top) * 0.5f + 5 * i;
        rsgDrawText(gTexts[i].text, x, y);
    }
    
    return 0;
}
